As the number of users and traffic volume continue to grow on the Internet, it becomes essential that a set of network performance metrics and measurement methodologies should be available that allow both the users and network service providers to have an accurate, common understanding of the performance and reliability of given Internet paths. On the users' side, once equipped with a set of network performance metrics and measurement tools, it will become much easier to have an accurate knowledge of what kind of service is available via different connections. With this information the users will be able to compare the relative performance of the various network service providers and peers. A user can then intelligently make a connection decision that will provide the best network performance and on-line experience. Similarly, knowledge from network performance measurements will also enable the network providers themselves to intelligently deploy more powerful switches to boost network capacity. Likewise, content-based service providers can use this information to optimally deploy and manage their service servers.
That is, this performance information may be used by many Internet services and systems to enable the creation of robust overlays for peer-to-peer systems or application-level multicast trees, by users to enable the selection of a server among multiple server mirrors, and by service providers to determine the placement of server replicas to improve the performance of content distribution networks. In an on-line peer-to-peer (P2P) gaming environment, this information may be used to determine where to deploy additional connection servers, and by content providers to deploy additional game servers. Despite many proposals on building an Internet measurement infrastructure from the research community, however, it is hard for such an infrastructure to be fully deployed and operational in the near future, due to both the scale and the complexity of the Internet.
In an on-line P2P gaming environment this scale and complexity is apparent. Specifically, there are now or will be in the near future several million game consoles or boxes deployed worldwide. One such game box, sold by the assignee of the instant application, is the Microsoft XBox. However, while there are a large number of game boxes deployed, there are only a relatively small number of connection servers deployed that will facilitate the location of and connection to multi-player gaming servers and to other peers running the desired game.
The connection decision, i.e. to which of the available peers and peers serving as game servers should a player connect, requires that the network performance or quality of service (QoS) between the player and the game server or peer be known. It is known that there are several types of QoS parameters, such as end-to-end delay, bandwidth, packet loss ratio, etc. All these metrics have tradeoffs, so the whole picture should be taken into consideration rather than focusing on one. Indeed, the tradeoffs may depend on the requirement of the particular gaming application running over the network.
For gaming applications, latency is the most important parameter for QoS selection. With the deployment of a broadband network, more and more games are utilizing multimedia technology to improve their representation ability. As a result, the network performance monitoring system should also pay attention to bandwidth and other QoS components. However, current low level network performance monitoring techniques are inadequate because some internet service providers (ISPs) use traffic filtering techniques within their networks, for example by blocking Internet Control Message Protocol (ICMP) echo packets, etc. Measurements using such packets (e.g., ping, traceroute, etc.) can only achieve a rather low accuracy, and are therefore unacceptable.
To further complicate the issue, many game boxes are deployed onto the network behind a Network Address Translator (NAT). Therefore, to determine the network QoS performance between those peers, a probing connection between those peers must be established. Unfortunately, NAT characteristics vary widely in their ability and willingness to allow such connections. However, the on-line gaming user will not tolerate a long delay while different probing techniques are tried to determine the network performance to those peers. Any long delay before a connection is made to play the game or otherwise run the application desired will detract from the user experience. Additionally, with potentially millions of peers available on the network, the sheer volume of probing traffic that could be generated as each peer tries to determine the network performance to the other peers might very well introduce network delays. Further, the amount of probing data that would result from such probes could quickly fill up the available memory of the game boxes, further detracting from the gaming performance.